#include <stdio.h>
#include <winsock.h> // 添加winsock头文件

#include <pthread.h>

#pragma comment(lib, "ws2_32.lib") // 表示链接Ws2_32.lib这个库

int main()
{
    // 库版本信息结构
    WSADATA wsaData = {0};

    // 加载套接字库，初始化Ws2_32.dll动态连接库
    // 定义版本类型，将两个字节组合成一个字，前面是低字节，后面是高字节
    WSAStartup(MAKEWORD(2, 2), &wsaData);

    // *WORD（字），类型为：unsigned short
    WORD wVersionRequested = MAKEWORD(2, 2);
    wVersionRequested = MAKEWORD(2, 2);

    // 输出ws2_32.dll动态库的版本号
    printf("wVersion: %d.%d\n",
           LOBYTE(wsaData.wVersion),
           HIBYTE(wsaData.wVersion));

    // 输出ws2_32.dll支持的最高版本号，通常与wVersion相同
    printf("wHighVersion: %d.%d\n",
           LOBYTE(wsaData.wHighVersion),
           HIBYTE(wsaData.wHighVersion));

    // 输出套接字的描述信息
    printf("szDescription: %s\n", wsaData.szDescription);
    // 输出系统的配置或状态信息
    printf("szSystemStatus: %s\n", wsaData.szSystemStatus);

    return 0;
}

/*
执行异常
AppData\Local\Temp\ccIItkTJ.o:p2.c:(.text+0x39): undefined reference to `__imp_WSAStartup'
collect2.exe: error: ld returned 1 exit status
*/